home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / websrvcs / nsIScriptableInterfaceInfo.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  39KB  |  936 lines

  1. /*
  2.  * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIScriptableInterfaceInfo.idl
  3.  */
  4.  
  5. #ifndef __gen_nsIScriptableInterfaceInfo_h__
  6. #define __gen_nsIScriptableInterfaceInfo_h__
  7.  
  8.  
  9. #ifndef __gen_nsISupports_h__
  10. #include "nsISupports.h"
  11. #endif
  12.  
  13. #ifndef __gen_nsIInterfaceInfo_h__
  14. #include "nsIInterfaceInfo.h"
  15. #endif
  16.  
  17. #ifndef __gen_nsIVariant_h__
  18. #include "nsIVariant.h"
  19. #endif
  20.  
  21. /* For IDL files that don't want to include root IDL files. */
  22. #ifndef NS_NO_VTABLE
  23. #define NS_NO_VTABLE
  24. #endif
  25.  
  26. /* starting interface:    nsIScriptableDataType */
  27. #define NS_ISCRIPTABLEDATATYPE_IID_STR "312e3b94-dc98-4ccc-b2fb-e3406f905cc6"
  28.  
  29. #define NS_ISCRIPTABLEDATATYPE_IID \
  30.   {0x312e3b94, 0xdc98, 0x4ccc, \
  31.     { 0xb2, 0xfb, 0xe3, 0x40, 0x6f, 0x90, 0x5c, 0xc6 }}
  32.  
  33. class NS_NO_VTABLE nsIScriptableDataType : public nsISupports {
  34.  public: 
  35.  
  36.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCRIPTABLEDATATYPE_IID)
  37.  
  38.   /* readonly attribute PRBool isPointer; */
  39.   NS_IMETHOD GetIsPointer(PRBool *aIsPointer) = 0;
  40.  
  41.   /* readonly attribute PRBool isUniquePointer; */
  42.   NS_IMETHOD GetIsUniquePointer(PRBool *aIsUniquePointer) = 0;
  43.  
  44.   /* readonly attribute PRBool isReference; */
  45.   NS_IMETHOD GetIsReference(PRBool *aIsReference) = 0;
  46.  
  47.   /* readonly attribute PRBool isArithmetic; */
  48.   NS_IMETHOD GetIsArithmetic(PRBool *aIsArithmetic) = 0;
  49.  
  50.   /* readonly attribute PRBool isInterfacePointer; */
  51.   NS_IMETHOD GetIsInterfacePointer(PRBool *aIsInterfacePointer) = 0;
  52.  
  53.   /* readonly attribute PRBool isArray; */
  54.   NS_IMETHOD GetIsArray(PRBool *aIsArray) = 0;
  55.  
  56.   /* readonly attribute PRBool isDependent; */
  57.   NS_IMETHOD GetIsDependent(PRBool *aIsDependent) = 0;
  58.  
  59.   /**
  60.     * This is one of the constants declared in nsIDataType
  61.     */
  62.   /* readonly attribute PRUint16 dataType; */
  63.   NS_IMETHOD GetDataType(PRUint16 *aDataType) = 0;
  64.  
  65. };
  66.  
  67. /* Use this macro when declaring classes that implement this interface. */
  68. #define NS_DECL_NSISCRIPTABLEDATATYPE \
  69.   NS_IMETHOD GetIsPointer(PRBool *aIsPointer); \
  70.   NS_IMETHOD GetIsUniquePointer(PRBool *aIsUniquePointer); \
  71.   NS_IMETHOD GetIsReference(PRBool *aIsReference); \
  72.   NS_IMETHOD GetIsArithmetic(PRBool *aIsArithmetic); \
  73.   NS_IMETHOD GetIsInterfacePointer(PRBool *aIsInterfacePointer); \
  74.   NS_IMETHOD GetIsArray(PRBool *aIsArray); \
  75.   NS_IMETHOD GetIsDependent(PRBool *aIsDependent); \
  76.   NS_IMETHOD GetDataType(PRUint16 *aDataType); 
  77.  
  78. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  79. #define NS_FORWARD_NSISCRIPTABLEDATATYPE(_to) \
  80.   NS_IMETHOD GetIsPointer(PRBool *aIsPointer) { return _to GetIsPointer(aIsPointer); } \
  81.   NS_IMETHOD GetIsUniquePointer(PRBool *aIsUniquePointer) { return _to GetIsUniquePointer(aIsUniquePointer); } \
  82.   NS_IMETHOD GetIsReference(PRBool *aIsReference) { return _to GetIsReference(aIsReference); } \
  83.   NS_IMETHOD GetIsArithmetic(PRBool *aIsArithmetic) { return _to GetIsArithmetic(aIsArithmetic); } \
  84.   NS_IMETHOD GetIsInterfacePointer(PRBool *aIsInterfacePointer) { return _to GetIsInterfacePointer(aIsInterfacePointer); } \
  85.   NS_IMETHOD GetIsArray(PRBool *aIsArray) { return _to GetIsArray(aIsArray); } \
  86.   NS_IMETHOD GetIsDependent(PRBool *aIsDependent) { return _to GetIsDependent(aIsDependent); } \
  87.   NS_IMETHOD GetDataType(PRUint16 *aDataType) { return _to GetDataType(aDataType); } 
  88.  
  89. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  90. #define NS_FORWARD_SAFE_NSISCRIPTABLEDATATYPE(_to) \
  91.   NS_IMETHOD GetIsPointer(PRBool *aIsPointer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsPointer(aIsPointer); } \
  92.   NS_IMETHOD GetIsUniquePointer(PRBool *aIsUniquePointer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsUniquePointer(aIsUniquePointer); } \
  93.   NS_IMETHOD GetIsReference(PRBool *aIsReference) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsReference(aIsReference); } \
  94.   NS_IMETHOD GetIsArithmetic(PRBool *aIsArithmetic) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsArithmetic(aIsArithmetic); } \
  95.   NS_IMETHOD GetIsInterfacePointer(PRBool *aIsInterfacePointer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsInterfacePointer(aIsInterfacePointer); } \
  96.   NS_IMETHOD GetIsArray(PRBool *aIsArray) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsArray(aIsArray); } \
  97.   NS_IMETHOD GetIsDependent(PRBool *aIsDependent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsDependent(aIsDependent); } \
  98.   NS_IMETHOD GetDataType(PRUint16 *aDataType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDataType(aDataType); } 
  99.  
  100. #if 0
  101. /* Use the code below as a template for the implementation class for this interface. */
  102.  
  103. /* Header file */
  104. class nsScriptableDataType : public nsIScriptableDataType
  105. {
  106. public:
  107.   NS_DECL_ISUPPORTS
  108.   NS_DECL_NSISCRIPTABLEDATATYPE
  109.  
  110.   nsScriptableDataType();
  111.  
  112. private:
  113.   ~nsScriptableDataType();
  114.  
  115. protected:
  116.   /* additional members */
  117. };
  118.  
  119. /* Implementation file */
  120. NS_IMPL_ISUPPORTS1(nsScriptableDataType, nsIScriptableDataType)
  121.  
  122. nsScriptableDataType::nsScriptableDataType()
  123. {
  124.   /* member initializers and constructor code */
  125. }
  126.  
  127. nsScriptableDataType::~nsScriptableDataType()
  128. {
  129.   /* destructor code */
  130. }
  131.  
  132. /* readonly attribute PRBool isPointer; */
  133. NS_IMETHODIMP nsScriptableDataType::GetIsPointer(PRBool *aIsPointer)
  134. {
  135.     return NS_ERROR_NOT_IMPLEMENTED;
  136. }
  137.  
  138. /* readonly attribute PRBool isUniquePointer; */
  139. NS_IMETHODIMP nsScriptableDataType::GetIsUniquePointer(PRBool *aIsUniquePointer)
  140. {
  141.     return NS_ERROR_NOT_IMPLEMENTED;
  142. }
  143.  
  144. /* readonly attribute PRBool isReference; */
  145. NS_IMETHODIMP nsScriptableDataType::GetIsReference(PRBool *aIsReference)
  146. {
  147.     return NS_ERROR_NOT_IMPLEMENTED;
  148. }
  149.  
  150. /* readonly attribute PRBool isArithmetic; */
  151. NS_IMETHODIMP nsScriptableDataType::GetIsArithmetic(PRBool *aIsArithmetic)
  152. {
  153.     return NS_ERROR_NOT_IMPLEMENTED;
  154. }
  155.  
  156. /* readonly attribute PRBool isInterfacePointer; */
  157. NS_IMETHODIMP nsScriptableDataType::GetIsInterfacePointer(PRBool *aIsInterfacePointer)
  158. {
  159.     return NS_ERROR_NOT_IMPLEMENTED;
  160. }
  161.  
  162. /* readonly attribute PRBool isArray; */
  163. NS_IMETHODIMP nsScriptableDataType::GetIsArray(PRBool *aIsArray)
  164. {
  165.     return NS_ERROR_NOT_IMPLEMENTED;
  166. }
  167.  
  168. /* readonly attribute PRBool isDependent; */
  169. NS_IMETHODIMP nsScriptableDataType::GetIsDependent(PRBool *aIsDependent)
  170. {
  171.     return NS_ERROR_NOT_IMPLEMENTED;
  172. }
  173.  
  174. /* readonly attribute PRUint16 dataType; */
  175. NS_IMETHODIMP nsScriptableDataType::GetDataType(PRUint16 *aDataType)
  176. {
  177.     return NS_ERROR_NOT_IMPLEMENTED;
  178. }
  179.  
  180. /* End of implementation class template. */
  181. #endif
  182.  
  183.  
  184. /* starting interface:    nsIScriptableParamInfo */
  185. #define NS_ISCRIPTABLEPARAMINFO_IID_STR "2309482b-4631-455f-833f-5e4e9ce38589"
  186.  
  187. #define NS_ISCRIPTABLEPARAMINFO_IID \
  188.   {0x2309482b, 0x4631, 0x455f, \
  189.     { 0x83, 0x3f, 0x5e, 0x4e, 0x9c, 0xe3, 0x85, 0x89 }}
  190.  
  191. class NS_NO_VTABLE nsIScriptableParamInfo : public nsISupports {
  192.  public: 
  193.  
  194.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCRIPTABLEPARAMINFO_IID)
  195.  
  196.   /* readonly attribute PRBool isIn; */
  197.   NS_IMETHOD GetIsIn(PRBool *aIsIn) = 0;
  198.  
  199.   /* readonly attribute PRBool isOut; */
  200.   NS_IMETHOD GetIsOut(PRBool *aIsOut) = 0;
  201.  
  202.   /* readonly attribute PRBool isRetval; */
  203.   NS_IMETHOD GetIsRetval(PRBool *aIsRetval) = 0;
  204.  
  205.   /* readonly attribute PRBool isShared; */
  206.   NS_IMETHOD GetIsShared(PRBool *aIsShared) = 0;
  207.  
  208.   /* readonly attribute PRBool isDipper; */
  209.   NS_IMETHOD GetIsDipper(PRBool *aIsDipper) = 0;
  210.  
  211.   /* readonly attribute nsIScriptableDataType type; */
  212.   NS_IMETHOD GetType(nsIScriptableDataType * *aType) = 0;
  213.  
  214.   /* [noscript] void getParamInfo ([shared, const, retval] out nsXPTParamInfoPtr aInfo); */
  215.   NS_IMETHOD GetParamInfo(const nsXPTParamInfo * *aInfo) = 0;
  216.  
  217. };
  218.  
  219. /* Use this macro when declaring classes that implement this interface. */
  220. #define NS_DECL_NSISCRIPTABLEPARAMINFO \
  221.   NS_IMETHOD GetIsIn(PRBool *aIsIn); \
  222.   NS_IMETHOD GetIsOut(PRBool *aIsOut); \
  223.   NS_IMETHOD GetIsRetval(PRBool *aIsRetval); \
  224.   NS_IMETHOD GetIsShared(PRBool *aIsShared); \
  225.   NS_IMETHOD GetIsDipper(PRBool *aIsDipper); \
  226.   NS_IMETHOD GetType(nsIScriptableDataType * *aType); \
  227.   NS_IMETHOD GetParamInfo(const nsXPTParamInfo * *aInfo); 
  228.  
  229. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  230. #define NS_FORWARD_NSISCRIPTABLEPARAMINFO(_to) \
  231.   NS_IMETHOD GetIsIn(PRBool *aIsIn) { return _to GetIsIn(aIsIn); } \
  232.   NS_IMETHOD GetIsOut(PRBool *aIsOut) { return _to GetIsOut(aIsOut); } \
  233.   NS_IMETHOD GetIsRetval(PRBool *aIsRetval) { return _to GetIsRetval(aIsRetval); } \
  234.   NS_IMETHOD GetIsShared(PRBool *aIsShared) { return _to GetIsShared(aIsShared); } \
  235.   NS_IMETHOD GetIsDipper(PRBool *aIsDipper) { return _to GetIsDipper(aIsDipper); } \
  236.   NS_IMETHOD GetType(nsIScriptableDataType * *aType) { return _to GetType(aType); } \
  237.   NS_IMETHOD GetParamInfo(const nsXPTParamInfo * *aInfo) { return _to GetParamInfo(aInfo); } 
  238.  
  239. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  240. #define NS_FORWARD_SAFE_NSISCRIPTABLEPARAMINFO(_to) \
  241.   NS_IMETHOD GetIsIn(PRBool *aIsIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsIn(aIsIn); } \
  242.   NS_IMETHOD GetIsOut(PRBool *aIsOut) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsOut(aIsOut); } \
  243.   NS_IMETHOD GetIsRetval(PRBool *aIsRetval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsRetval(aIsRetval); } \
  244.   NS_IMETHOD GetIsShared(PRBool *aIsShared) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsShared(aIsShared); } \
  245.   NS_IMETHOD GetIsDipper(PRBool *aIsDipper) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsDipper(aIsDipper); } \
  246.   NS_IMETHOD GetType(nsIScriptableDataType * *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  247.   NS_IMETHOD GetParamInfo(const nsXPTParamInfo * *aInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParamInfo(aInfo); } 
  248.  
  249. #if 0
  250. /* Use the code below as a template for the implementation class for this interface. */
  251.  
  252. /* Header file */
  253. class nsScriptableParamInfo : public nsIScriptableParamInfo
  254. {
  255. public:
  256.   NS_DECL_ISUPPORTS
  257.   NS_DECL_NSISCRIPTABLEPARAMINFO
  258.  
  259.   nsScriptableParamInfo();
  260.  
  261. private:
  262.   ~nsScriptableParamInfo();
  263.  
  264. protected:
  265.   /* additional members */
  266. };
  267.  
  268. /* Implementation file */
  269. NS_IMPL_ISUPPORTS1(nsScriptableParamInfo, nsIScriptableParamInfo)
  270.  
  271. nsScriptableParamInfo::nsScriptableParamInfo()
  272. {
  273.   /* member initializers and constructor code */
  274. }
  275.  
  276. nsScriptableParamInfo::~nsScriptableParamInfo()
  277. {
  278.   /* destructor code */
  279. }
  280.  
  281. /* readonly attribute PRBool isIn; */
  282. NS_IMETHODIMP nsScriptableParamInfo::GetIsIn(PRBool *aIsIn)
  283. {
  284.     return NS_ERROR_NOT_IMPLEMENTED;
  285. }
  286.  
  287. /* readonly attribute PRBool isOut; */
  288. NS_IMETHODIMP nsScriptableParamInfo::GetIsOut(PRBool *aIsOut)
  289. {
  290.     return NS_ERROR_NOT_IMPLEMENTED;
  291. }
  292.  
  293. /* readonly attribute PRBool isRetval; */
  294. NS_IMETHODIMP nsScriptableParamInfo::GetIsRetval(PRBool *aIsRetval)
  295. {
  296.     return NS_ERROR_NOT_IMPLEMENTED;
  297. }
  298.  
  299. /* readonly attribute PRBool isShared; */
  300. NS_IMETHODIMP nsScriptableParamInfo::GetIsShared(PRBool *aIsShared)
  301. {
  302.     return NS_ERROR_NOT_IMPLEMENTED;
  303. }
  304.  
  305. /* readonly attribute PRBool isDipper; */
  306. NS_IMETHODIMP nsScriptableParamInfo::GetIsDipper(PRBool *aIsDipper)
  307. {
  308.     return NS_ERROR_NOT_IMPLEMENTED;
  309. }
  310.  
  311. /* readonly attribute nsIScriptableDataType type; */
  312. NS_IMETHODIMP nsScriptableParamInfo::GetType(nsIScriptableDataType * *aType)
  313. {
  314.     return NS_ERROR_NOT_IMPLEMENTED;
  315. }
  316.  
  317. /* [noscript] void getParamInfo ([shared, const, retval] out nsXPTParamInfoPtr aInfo); */
  318. NS_IMETHODIMP nsScriptableParamInfo::GetParamInfo(const nsXPTParamInfo * *aInfo)
  319. {
  320.     return NS_ERROR_NOT_IMPLEMENTED;
  321. }
  322.  
  323. /* End of implementation class template. */
  324. #endif
  325.  
  326.  
  327. /* starting interface:    nsIScriptableConstant */
  328. #define NS_ISCRIPTABLECONSTANT_IID_STR "0f6c5b09-88b0-43ca-b55c-578f24f3d810"
  329.  
  330. #define NS_ISCRIPTABLECONSTANT_IID \
  331.   {0x0f6c5b09, 0x88b0, 0x43ca, \
  332.     { 0xb5, 0x5c, 0x57, 0x8f, 0x24, 0xf3, 0xd8, 0x10 }}
  333.  
  334. class NS_NO_VTABLE nsIScriptableConstant : public nsISupports {
  335.  public: 
  336.  
  337.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCRIPTABLECONSTANT_IID)
  338.  
  339.   /* readonly attribute string name; */
  340.   NS_IMETHOD GetName(char * *aName) = 0;
  341.  
  342.   /* readonly attribute nsIScriptableDataType type; */
  343.   NS_IMETHOD GetType(nsIScriptableDataType * *aType) = 0;
  344.  
  345.   /* readonly attribute nsIVariant value; */
  346.   NS_IMETHOD GetValue(nsIVariant * *aValue) = 0;
  347.  
  348. };
  349.  
  350. /* Use this macro when declaring classes that implement this interface. */
  351. #define NS_DECL_NSISCRIPTABLECONSTANT \
  352.   NS_IMETHOD GetName(char * *aName); \
  353.   NS_IMETHOD GetType(nsIScriptableDataType * *aType); \
  354.   NS_IMETHOD GetValue(nsIVariant * *aValue); 
  355.  
  356. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  357. #define NS_FORWARD_NSISCRIPTABLECONSTANT(_to) \
  358.   NS_IMETHOD GetName(char * *aName) { return _to GetName(aName); } \
  359.   NS_IMETHOD GetType(nsIScriptableDataType * *aType) { return _to GetType(aType); } \
  360.   NS_IMETHOD GetValue(nsIVariant * *aValue) { return _to GetValue(aValue); } 
  361.  
  362. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  363. #define NS_FORWARD_SAFE_NSISCRIPTABLECONSTANT(_to) \
  364.   NS_IMETHOD GetName(char * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  365.   NS_IMETHOD GetType(nsIScriptableDataType * *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  366.   NS_IMETHOD GetValue(nsIVariant * *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } 
  367.  
  368. #if 0
  369. /* Use the code below as a template for the implementation class for this interface. */
  370.  
  371. /* Header file */
  372. class nsScriptableConstant : public nsIScriptableConstant
  373. {
  374. public:
  375.   NS_DECL_ISUPPORTS
  376.   NS_DECL_NSISCRIPTABLECONSTANT
  377.  
  378.   nsScriptableConstant();
  379.  
  380. private:
  381.   ~nsScriptableConstant();
  382.  
  383. protected:
  384.   /* additional members */
  385. };
  386.  
  387. /* Implementation file */
  388. NS_IMPL_ISUPPORTS1(nsScriptableConstant, nsIScriptableConstant)
  389.  
  390. nsScriptableConstant::nsScriptableConstant()
  391. {
  392.   /* member initializers and constructor code */
  393. }
  394.  
  395. nsScriptableConstant::~nsScriptableConstant()
  396. {
  397.   /* destructor code */
  398. }
  399.  
  400. /* readonly attribute string name; */
  401. NS_IMETHODIMP nsScriptableConstant::GetName(char * *aName)
  402. {
  403.     return NS_ERROR_NOT_IMPLEMENTED;
  404. }
  405.  
  406. /* readonly attribute nsIScriptableDataType type; */
  407. NS_IMETHODIMP nsScriptableConstant::GetType(nsIScriptableDataType * *aType)
  408. {
  409.     return NS_ERROR_NOT_IMPLEMENTED;
  410. }
  411.  
  412. /* readonly attribute nsIVariant value; */
  413. NS_IMETHODIMP nsScriptableConstant::GetValue(nsIVariant * *aValue)
  414. {
  415.     return NS_ERROR_NOT_IMPLEMENTED;
  416. }
  417.  
  418. /* End of implementation class template. */
  419. #endif
  420.  
  421.  
  422. /* starting interface:    nsIScriptableMethodInfo */
  423. #define NS_ISCRIPTABLEMETHODINFO_IID_STR "9228afa2-187c-4feb-9228-5108e640ca33"
  424.  
  425. #define NS_ISCRIPTABLEMETHODINFO_IID \
  426.   {0x9228afa2, 0x187c, 0x4feb, \
  427.     { 0x92, 0x28, 0x51, 0x08, 0xe6, 0x40, 0xca, 0x33 }}
  428.  
  429. class NS_NO_VTABLE nsIScriptableMethodInfo : public nsISupports {
  430.  public: 
  431.  
  432.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCRIPTABLEMETHODINFO_IID)
  433.  
  434.   /* readonly attribute PRBool isGetter; */
  435.   NS_IMETHOD GetIsGetter(PRBool *aIsGetter) = 0;
  436.  
  437.   /* readonly attribute PRBool isSetter; */
  438.   NS_IMETHOD GetIsSetter(PRBool *aIsSetter) = 0;
  439.  
  440.   /* readonly attribute PRBool isNotXPCOM; */
  441.   NS_IMETHOD GetIsNotXPCOM(PRBool *aIsNotXPCOM) = 0;
  442.  
  443.   /* readonly attribute PRBool isConstructor; */
  444.   NS_IMETHOD GetIsConstructor(PRBool *aIsConstructor) = 0;
  445.  
  446.   /* readonly attribute PRBool isHidden; */
  447.   NS_IMETHOD GetIsHidden(PRBool *aIsHidden) = 0;
  448.  
  449.   /* readonly attribute string name; */
  450.   NS_IMETHOD GetName(char * *aName) = 0;
  451.  
  452.   /* readonly attribute PRUint8 paramCount; */
  453.   NS_IMETHOD GetParamCount(PRUint8 *aParamCount) = 0;
  454.  
  455.   /* nsIScriptableParamInfo getParam (in PRUint8 idx); */
  456.   NS_IMETHOD GetParam(PRUint8 idx, nsIScriptableParamInfo **_retval) = 0;
  457.  
  458.   /* readonly attribute nsIScriptableParamInfo result; */
  459.   NS_IMETHOD GetResult(nsIScriptableParamInfo * *aResult) = 0;
  460.  
  461. };
  462.  
  463. /* Use this macro when declaring classes that implement this interface. */
  464. #define NS_DECL_NSISCRIPTABLEMETHODINFO \
  465.   NS_IMETHOD GetIsGetter(PRBool *aIsGetter); \
  466.   NS_IMETHOD GetIsSetter(PRBool *aIsSetter); \
  467.   NS_IMETHOD GetIsNotXPCOM(PRBool *aIsNotXPCOM); \
  468.   NS_IMETHOD GetIsConstructor(PRBool *aIsConstructor); \
  469.   NS_IMETHOD GetIsHidden(PRBool *aIsHidden); \
  470.   NS_IMETHOD GetName(char * *aName); \
  471.   NS_IMETHOD GetParamCount(PRUint8 *aParamCount); \
  472.   NS_IMETHOD GetParam(PRUint8 idx, nsIScriptableParamInfo **_retval); \
  473.   NS_IMETHOD GetResult(nsIScriptableParamInfo * *aResult); 
  474.  
  475. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  476. #define NS_FORWARD_NSISCRIPTABLEMETHODINFO(_to) \
  477.   NS_IMETHOD GetIsGetter(PRBool *aIsGetter) { return _to GetIsGetter(aIsGetter); } \
  478.   NS_IMETHOD GetIsSetter(PRBool *aIsSetter) { return _to GetIsSetter(aIsSetter); } \
  479.   NS_IMETHOD GetIsNotXPCOM(PRBool *aIsNotXPCOM) { return _to GetIsNotXPCOM(aIsNotXPCOM); } \
  480.   NS_IMETHOD GetIsConstructor(PRBool *aIsConstructor) { return _to GetIsConstructor(aIsConstructor); } \
  481.   NS_IMETHOD GetIsHidden(PRBool *aIsHidden) { return _to GetIsHidden(aIsHidden); } \
  482.   NS_IMETHOD GetName(char * *aName) { return _to GetName(aName); } \
  483.   NS_IMETHOD GetParamCount(PRUint8 *aParamCount) { return _to GetParamCount(aParamCount); } \
  484.   NS_IMETHOD GetParam(PRUint8 idx, nsIScriptableParamInfo **_retval) { return _to GetParam(idx, _retval); } \
  485.   NS_IMETHOD GetResult(nsIScriptableParamInfo * *aResult) { return _to GetResult(aResult); } 
  486.  
  487. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  488. #define NS_FORWARD_SAFE_NSISCRIPTABLEMETHODINFO(_to) \
  489.   NS_IMETHOD GetIsGetter(PRBool *aIsGetter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsGetter(aIsGetter); } \
  490.   NS_IMETHOD GetIsSetter(PRBool *aIsSetter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsSetter(aIsSetter); } \
  491.   NS_IMETHOD GetIsNotXPCOM(PRBool *aIsNotXPCOM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsNotXPCOM(aIsNotXPCOM); } \
  492.   NS_IMETHOD GetIsConstructor(PRBool *aIsConstructor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsConstructor(aIsConstructor); } \
  493.   NS_IMETHOD GetIsHidden(PRBool *aIsHidden) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsHidden(aIsHidden); } \
  494.   NS_IMETHOD GetName(char * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  495.   NS_IMETHOD GetParamCount(PRUint8 *aParamCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParamCount(aParamCount); } \
  496.   NS_IMETHOD GetParam(PRUint8 idx, nsIScriptableParamInfo **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParam(idx, _retval); } \
  497.   NS_IMETHOD GetResult(nsIScriptableParamInfo * *aResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResult(aResult); } 
  498.  
  499. #if 0
  500. /* Use the code below as a template for the implementation class for this interface. */
  501.  
  502. /* Header file */
  503. class nsScriptableMethodInfo : public nsIScriptableMethodInfo
  504. {
  505. public:
  506.   NS_DECL_ISUPPORTS
  507.   NS_DECL_NSISCRIPTABLEMETHODINFO
  508.  
  509.   nsScriptableMethodInfo();
  510.  
  511. private:
  512.   ~nsScriptableMethodInfo();
  513.  
  514. protected:
  515.   /* additional members */
  516. };
  517.  
  518. /* Implementation file */
  519. NS_IMPL_ISUPPORTS1(nsScriptableMethodInfo, nsIScriptableMethodInfo)
  520.  
  521. nsScriptableMethodInfo::nsScriptableMethodInfo()
  522. {
  523.   /* member initializers and constructor code */
  524. }
  525.  
  526. nsScriptableMethodInfo::~nsScriptableMethodInfo()
  527. {
  528.   /* destructor code */
  529. }
  530.  
  531. /* readonly attribute PRBool isGetter; */
  532. NS_IMETHODIMP nsScriptableMethodInfo::GetIsGetter(PRBool *aIsGetter)
  533. {
  534.     return NS_ERROR_NOT_IMPLEMENTED;
  535. }
  536.  
  537. /* readonly attribute PRBool isSetter; */
  538. NS_IMETHODIMP nsScriptableMethodInfo::GetIsSetter(PRBool *aIsSetter)
  539. {
  540.     return NS_ERROR_NOT_IMPLEMENTED;
  541. }
  542.  
  543. /* readonly attribute PRBool isNotXPCOM; */
  544. NS_IMETHODIMP nsScriptableMethodInfo::GetIsNotXPCOM(PRBool *aIsNotXPCOM)
  545. {
  546.     return NS_ERROR_NOT_IMPLEMENTED;
  547. }
  548.  
  549. /* readonly attribute PRBool isConstructor; */
  550. NS_IMETHODIMP nsScriptableMethodInfo::GetIsConstructor(PRBool *aIsConstructor)
  551. {
  552.     return NS_ERROR_NOT_IMPLEMENTED;
  553. }
  554.  
  555. /* readonly attribute PRBool isHidden; */
  556. NS_IMETHODIMP nsScriptableMethodInfo::GetIsHidden(PRBool *aIsHidden)
  557. {
  558.     return NS_ERROR_NOT_IMPLEMENTED;
  559. }
  560.  
  561. /* readonly attribute string name; */
  562. NS_IMETHODIMP nsScriptableMethodInfo::GetName(char * *aName)
  563. {
  564.     return NS_ERROR_NOT_IMPLEMENTED;
  565. }
  566.  
  567. /* readonly attribute PRUint8 paramCount; */
  568. NS_IMETHODIMP nsScriptableMethodInfo::GetParamCount(PRUint8 *aParamCount)
  569. {
  570.     return NS_ERROR_NOT_IMPLEMENTED;
  571. }
  572.  
  573. /* nsIScriptableParamInfo getParam (in PRUint8 idx); */
  574. NS_IMETHODIMP nsScriptableMethodInfo::GetParam(PRUint8 idx, nsIScriptableParamInfo **_retval)
  575. {
  576.     return NS_ERROR_NOT_IMPLEMENTED;
  577. }
  578.  
  579. /* readonly attribute nsIScriptableParamInfo result; */
  580. NS_IMETHODIMP nsScriptableMethodInfo::GetResult(nsIScriptableParamInfo * *aResult)
  581. {
  582.     return NS_ERROR_NOT_IMPLEMENTED;
  583. }
  584.  
  585. /* End of implementation class template. */
  586. #endif
  587.  
  588.  
  589. /* starting interface:    nsIScriptableInterfaceInfo */
  590. #define NS_ISCRIPTABLEINTERFACEINFO_IID_STR "f902d5ba-2ef6-444e-8a17-52cb70715c10"
  591.  
  592. #define NS_ISCRIPTABLEINTERFACEINFO_IID \
  593.   {0xf902d5ba, 0x2ef6, 0x444e, \
  594.     { 0x8a, 0x17, 0x52, 0xcb, 0x70, 0x71, 0x5c, 0x10 }}
  595.  
  596. class NS_NO_VTABLE nsIScriptableInterfaceInfo : public nsISupports {
  597.  public: 
  598.  
  599.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCRIPTABLEINTERFACEINFO_IID)
  600.  
  601.   /* [noscript] attribute nsIInterfaceInfo info; */
  602.   NS_IMETHOD GetInfo(nsIInterfaceInfo * *aInfo) = 0;
  603.   NS_IMETHOD SetInfo(nsIInterfaceInfo * aInfo) = 0;
  604.  
  605.   /* void init (in nsIIDPtr aIID); */
  606.   NS_IMETHOD Init(const nsIID * aIID) = 0;
  607.  
  608.   /* void initWithName (in string name); */
  609.   NS_IMETHOD InitWithName(const char *name) = 0;
  610.  
  611.   /* readonly attribute string name; */
  612.   NS_IMETHOD GetName(char * *aName) = 0;
  613.  
  614.   /* readonly attribute nsIIDPtr interfaceID; */
  615.   NS_IMETHOD GetInterfaceID(nsIID * *aInterfaceID) = 0;
  616.  
  617.   /** 
  618.      * True if this object has been sucessfully set to wrap an interface info.
  619.      */
  620.   /* readonly attribute PRBool isValid; */
  621.   NS_IMETHOD GetIsValid(PRBool *aIsValid) = 0;
  622.  
  623.   /* readonly attribute PRBool isScriptable; */
  624.   NS_IMETHOD GetIsScriptable(PRBool *aIsScriptable) = 0;
  625.  
  626.   /* readonly attribute nsIScriptableInterfaceInfo parent; */
  627.   NS_IMETHOD GetParent(nsIScriptableInterfaceInfo * *aParent) = 0;
  628.  
  629.   /**
  630.     * These include counts for parent (and all ancestors).
  631.     */
  632.   /* readonly attribute PRUint16 methodCount; */
  633.   NS_IMETHOD GetMethodCount(PRUint16 *aMethodCount) = 0;
  634.  
  635.   /* readonly attribute PRUint16 constantCount; */
  636.   NS_IMETHOD GetConstantCount(PRUint16 *aConstantCount) = 0;
  637.  
  638.   /**
  639.     * These include methods and constants for parent (and all ancestors).
  640.     */
  641.   /* nsIScriptableMethodInfo getMethodInfo (in PRUint16 index); */
  642.   NS_IMETHOD GetMethodInfo(PRUint16 index, nsIScriptableMethodInfo **_retval) = 0;
  643.  
  644.   /* nsIScriptableMethodInfo getMethodInfoForName (in string methodName, out PRUint16 index); */
  645.   NS_IMETHOD GetMethodInfoForName(const char *methodName, PRUint16 *index, nsIScriptableMethodInfo **_retval) = 0;
  646.  
  647.   /* nsIScriptableConstant getConstant (in PRUint16 index); */
  648.   NS_IMETHOD GetConstant(PRUint16 index, nsIScriptableConstant **_retval) = 0;
  649.  
  650.   /**
  651.     * Get the interface information or iid associated with a param of some
  652.     * method in this interface.
  653.     */
  654.   /* nsIScriptableInterfaceInfo getInfoForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param); */
  655.   NS_IMETHOD GetInfoForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIScriptableInterfaceInfo **_retval) = 0;
  656.  
  657.   /* nsIIDPtr getIIDForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param); */
  658.   NS_IMETHOD GetIIDForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIID * *_retval) = 0;
  659.  
  660.   /* nsIScriptableDataType getTypeForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param, in PRUint16 dimension); */
  661.   NS_IMETHOD GetTypeForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, nsIScriptableDataType **_retval) = 0;
  662.  
  663.   /* PRUint8 getSizeIsArgNumberForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param, in PRUint16 dimension); */
  664.   NS_IMETHOD GetSizeIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval) = 0;
  665.  
  666.   /* PRUint8 getLengthIsArgNumberForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param, in PRUint16 dimension); */
  667.   NS_IMETHOD GetLengthIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval) = 0;
  668.  
  669.   /* PRUint8 getInterfaceIsArgNumberForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param); */
  670.   NS_IMETHOD GetInterfaceIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint8 *_retval) = 0;
  671.  
  672.   /* PRBool isIID (in nsIIDPtr IID); */
  673.   NS_IMETHOD IsIID(const nsIID * IID, PRBool *_retval) = 0;
  674.  
  675.   /* readonly attribute PRBool isFunction; */
  676.   NS_IMETHOD GetIsFunction(PRBool *aIsFunction) = 0;
  677.  
  678.   /* PRBool hasAncestor (in nsIIDPtr iid); */
  679.   NS_IMETHOD HasAncestor(const nsIID * iid, PRBool *_retval) = 0;
  680.  
  681. };
  682.  
  683. /* Use this macro when declaring classes that implement this interface. */
  684. #define NS_DECL_NSISCRIPTABLEINTERFACEINFO \
  685.   NS_IMETHOD GetInfo(nsIInterfaceInfo * *aInfo); \
  686.   NS_IMETHOD SetInfo(nsIInterfaceInfo * aInfo); \
  687.   NS_IMETHOD Init(const nsIID * aIID); \
  688.   NS_IMETHOD InitWithName(const char *name); \
  689.   NS_IMETHOD GetName(char * *aName); \
  690.   NS_IMETHOD GetInterfaceID(nsIID * *aInterfaceID); \
  691.   NS_IMETHOD GetIsValid(PRBool *aIsValid); \
  692.   NS_IMETHOD GetIsScriptable(PRBool *aIsScriptable); \
  693.   NS_IMETHOD GetParent(nsIScriptableInterfaceInfo * *aParent); \
  694.   NS_IMETHOD GetMethodCount(PRUint16 *aMethodCount); \
  695.   NS_IMETHOD GetConstantCount(PRUint16 *aConstantCount); \
  696.   NS_IMETHOD GetMethodInfo(PRUint16 index, nsIScriptableMethodInfo **_retval); \
  697.   NS_IMETHOD GetMethodInfoForName(const char *methodName, PRUint16 *index, nsIScriptableMethodInfo **_retval); \
  698.   NS_IMETHOD GetConstant(PRUint16 index, nsIScriptableConstant **_retval); \
  699.   NS_IMETHOD GetInfoForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIScriptableInterfaceInfo **_retval); \
  700.   NS_IMETHOD GetIIDForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIID * *_retval); \
  701.   NS_IMETHOD GetTypeForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, nsIScriptableDataType **_retval); \
  702.   NS_IMETHOD GetSizeIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval); \
  703.   NS_IMETHOD GetLengthIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval); \
  704.   NS_IMETHOD GetInterfaceIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint8 *_retval); \
  705.   NS_IMETHOD IsIID(const nsIID * IID, PRBool *_retval); \
  706.   NS_IMETHOD GetIsFunction(PRBool *aIsFunction); \
  707.   NS_IMETHOD HasAncestor(const nsIID * iid, PRBool *_retval); 
  708.  
  709. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  710. #define NS_FORWARD_NSISCRIPTABLEINTERFACEINFO(_to) \
  711.   NS_IMETHOD GetInfo(nsIInterfaceInfo * *aInfo) { return _to GetInfo(aInfo); } \
  712.   NS_IMETHOD SetInfo(nsIInterfaceInfo * aInfo) { return _to SetInfo(aInfo); } \
  713.   NS_IMETHOD Init(const nsIID * aIID) { return _to Init(aIID); } \
  714.   NS_IMETHOD InitWithName(const char *name) { return _to InitWithName(name); } \
  715.   NS_IMETHOD GetName(char * *aName) { return _to GetName(aName); } \
  716.   NS_IMETHOD GetInterfaceID(nsIID * *aInterfaceID) { return _to GetInterfaceID(aInterfaceID); } \
  717.   NS_IMETHOD GetIsValid(PRBool *aIsValid) { return _to GetIsValid(aIsValid); } \
  718.   NS_IMETHOD GetIsScriptable(PRBool *aIsScriptable) { return _to GetIsScriptable(aIsScriptable); } \
  719.   NS_IMETHOD GetParent(nsIScriptableInterfaceInfo * *aParent) { return _to GetParent(aParent); } \
  720.   NS_IMETHOD GetMethodCount(PRUint16 *aMethodCount) { return _to GetMethodCount(aMethodCount); } \
  721.   NS_IMETHOD GetConstantCount(PRUint16 *aConstantCount) { return _to GetConstantCount(aConstantCount); } \
  722.   NS_IMETHOD GetMethodInfo(PRUint16 index, nsIScriptableMethodInfo **_retval) { return _to GetMethodInfo(index, _retval); } \
  723.   NS_IMETHOD GetMethodInfoForName(const char *methodName, PRUint16 *index, nsIScriptableMethodInfo **_retval) { return _to GetMethodInfoForName(methodName, index, _retval); } \
  724.   NS_IMETHOD GetConstant(PRUint16 index, nsIScriptableConstant **_retval) { return _to GetConstant(index, _retval); } \
  725.   NS_IMETHOD GetInfoForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIScriptableInterfaceInfo **_retval) { return _to GetInfoForParam(methodIndex, param, _retval); } \
  726.   NS_IMETHOD GetIIDForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIID * *_retval) { return _to GetIIDForParam(methodIndex, param, _retval); } \
  727.   NS_IMETHOD GetTypeForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, nsIScriptableDataType **_retval) { return _to GetTypeForParam(methodIndex, param, dimension, _retval); } \
  728.   NS_IMETHOD GetSizeIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval) { return _to GetSizeIsArgNumberForParam(methodIndex, param, dimension, _retval); } \
  729.   NS_IMETHOD GetLengthIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval) { return _to GetLengthIsArgNumberForParam(methodIndex, param, dimension, _retval); } \
  730.   NS_IMETHOD GetInterfaceIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint8 *_retval) { return _to GetInterfaceIsArgNumberForParam(methodIndex, param, _retval); } \
  731.   NS_IMETHOD IsIID(const nsIID * IID, PRBool *_retval) { return _to IsIID(IID, _retval); } \
  732.   NS_IMETHOD GetIsFunction(PRBool *aIsFunction) { return _to GetIsFunction(aIsFunction); } \
  733.   NS_IMETHOD HasAncestor(const nsIID * iid, PRBool *_retval) { return _to HasAncestor(iid, _retval); } 
  734.  
  735. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  736. #define NS_FORWARD_SAFE_NSISCRIPTABLEINTERFACEINFO(_to) \
  737.   NS_IMETHOD GetInfo(nsIInterfaceInfo * *aInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInfo(aInfo); } \
  738.   NS_IMETHOD SetInfo(nsIInterfaceInfo * aInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInfo(aInfo); } \
  739.   NS_IMETHOD Init(const nsIID * aIID) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(aIID); } \
  740.   NS_IMETHOD InitWithName(const char *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitWithName(name); } \
  741.   NS_IMETHOD GetName(char * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  742.   NS_IMETHOD GetInterfaceID(nsIID * *aInterfaceID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaceID(aInterfaceID); } \
  743.   NS_IMETHOD GetIsValid(PRBool *aIsValid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsValid(aIsValid); } \
  744.   NS_IMETHOD GetIsScriptable(PRBool *aIsScriptable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsScriptable(aIsScriptable); } \
  745.   NS_IMETHOD GetParent(nsIScriptableInterfaceInfo * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  746.   NS_IMETHOD GetMethodCount(PRUint16 *aMethodCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMethodCount(aMethodCount); } \
  747.   NS_IMETHOD GetConstantCount(PRUint16 *aConstantCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConstantCount(aConstantCount); } \
  748.   NS_IMETHOD GetMethodInfo(PRUint16 index, nsIScriptableMethodInfo **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMethodInfo(index, _retval); } \
  749.   NS_IMETHOD GetMethodInfoForName(const char *methodName, PRUint16 *index, nsIScriptableMethodInfo **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMethodInfoForName(methodName, index, _retval); } \
  750.   NS_IMETHOD GetConstant(PRUint16 index, nsIScriptableConstant **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConstant(index, _retval); } \
  751.   NS_IMETHOD GetInfoForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIScriptableInterfaceInfo **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInfoForParam(methodIndex, param, _retval); } \
  752.   NS_IMETHOD GetIIDForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIID * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIIDForParam(methodIndex, param, _retval); } \
  753.   NS_IMETHOD GetTypeForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, nsIScriptableDataType **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTypeForParam(methodIndex, param, dimension, _retval); } \
  754.   NS_IMETHOD GetSizeIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSizeIsArgNumberForParam(methodIndex, param, dimension, _retval); } \
  755.   NS_IMETHOD GetLengthIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLengthIsArgNumberForParam(methodIndex, param, dimension, _retval); } \
  756.   NS_IMETHOD GetInterfaceIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint8 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaceIsArgNumberForParam(methodIndex, param, _retval); } \
  757.   NS_IMETHOD IsIID(const nsIID * IID, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsIID(IID, _retval); } \
  758.   NS_IMETHOD GetIsFunction(PRBool *aIsFunction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsFunction(aIsFunction); } \
  759.   NS_IMETHOD HasAncestor(const nsIID * iid, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasAncestor(iid, _retval); } 
  760.  
  761. #if 0
  762. /* Use the code below as a template for the implementation class for this interface. */
  763.  
  764. /* Header file */
  765. class nsScriptableInterfaceInfo : public nsIScriptableInterfaceInfo
  766. {
  767. public:
  768.   NS_DECL_ISUPPORTS
  769.   NS_DECL_NSISCRIPTABLEINTERFACEINFO
  770.  
  771.   nsScriptableInterfaceInfo();
  772.  
  773. private:
  774.   ~nsScriptableInterfaceInfo();
  775.  
  776. protected:
  777.   /* additional members */
  778. };
  779.  
  780. /* Implementation file */
  781. NS_IMPL_ISUPPORTS1(nsScriptableInterfaceInfo, nsIScriptableInterfaceInfo)
  782.  
  783. nsScriptableInterfaceInfo::nsScriptableInterfaceInfo()
  784. {
  785.   /* member initializers and constructor code */
  786. }
  787.  
  788. nsScriptableInterfaceInfo::~nsScriptableInterfaceInfo()
  789. {
  790.   /* destructor code */
  791. }
  792.  
  793. /* [noscript] attribute nsIInterfaceInfo info; */
  794. NS_IMETHODIMP nsScriptableInterfaceInfo::GetInfo(nsIInterfaceInfo * *aInfo)
  795. {
  796.     return NS_ERROR_NOT_IMPLEMENTED;
  797. }
  798. NS_IMETHODIMP nsScriptableInterfaceInfo::SetInfo(nsIInterfaceInfo * aInfo)
  799. {
  800.     return NS_ERROR_NOT_IMPLEMENTED;
  801. }
  802.  
  803. /* void init (in nsIIDPtr aIID); */
  804. NS_IMETHODIMP nsScriptableInterfaceInfo::Init(const nsIID * aIID)
  805. {
  806.     return NS_ERROR_NOT_IMPLEMENTED;
  807. }
  808.  
  809. /* void initWithName (in string name); */
  810. NS_IMETHODIMP nsScriptableInterfaceInfo::InitWithName(const char *name)
  811. {
  812.     return NS_ERROR_NOT_IMPLEMENTED;
  813. }
  814.  
  815. /* readonly attribute string name; */
  816. NS_IMETHODIMP nsScriptableInterfaceInfo::GetName(char * *aName)
  817. {
  818.     return NS_ERROR_NOT_IMPLEMENTED;
  819. }
  820.  
  821. /* readonly attribute nsIIDPtr interfaceID; */
  822. NS_IMETHODIMP nsScriptableInterfaceInfo::GetInterfaceID(nsIID * *aInterfaceID)
  823. {
  824.     return NS_ERROR_NOT_IMPLEMENTED;
  825. }
  826.  
  827. /* readonly attribute PRBool isValid; */
  828. NS_IMETHODIMP nsScriptableInterfaceInfo::GetIsValid(PRBool *aIsValid)
  829. {
  830.     return NS_ERROR_NOT_IMPLEMENTED;
  831. }
  832.  
  833. /* readonly attribute PRBool isScriptable; */
  834. NS_IMETHODIMP nsScriptableInterfaceInfo::GetIsScriptable(PRBool *aIsScriptable)
  835. {
  836.     return NS_ERROR_NOT_IMPLEMENTED;
  837. }
  838.  
  839. /* readonly attribute nsIScriptableInterfaceInfo parent; */
  840. NS_IMETHODIMP nsScriptableInterfaceInfo::GetParent(nsIScriptableInterfaceInfo * *aParent)
  841. {
  842.     return NS_ERROR_NOT_IMPLEMENTED;
  843. }
  844.  
  845. /* readonly attribute PRUint16 methodCount; */
  846. NS_IMETHODIMP nsScriptableInterfaceInfo::GetMethodCount(PRUint16 *aMethodCount)
  847. {
  848.     return NS_ERROR_NOT_IMPLEMENTED;
  849. }
  850.  
  851. /* readonly attribute PRUint16 constantCount; */
  852. NS_IMETHODIMP nsScriptableInterfaceInfo::GetConstantCount(PRUint16 *aConstantCount)
  853. {
  854.     return NS_ERROR_NOT_IMPLEMENTED;
  855. }
  856.  
  857. /* nsIScriptableMethodInfo getMethodInfo (in PRUint16 index); */
  858. NS_IMETHODIMP nsScriptableInterfaceInfo::GetMethodInfo(PRUint16 index, nsIScriptableMethodInfo **_retval)
  859. {
  860.     return NS_ERROR_NOT_IMPLEMENTED;
  861. }
  862.  
  863. /* nsIScriptableMethodInfo getMethodInfoForName (in string methodName, out PRUint16 index); */
  864. NS_IMETHODIMP nsScriptableInterfaceInfo::GetMethodInfoForName(const char *methodName, PRUint16 *index, nsIScriptableMethodInfo **_retval)
  865. {
  866.     return NS_ERROR_NOT_IMPLEMENTED;
  867. }
  868.  
  869. /* nsIScriptableConstant getConstant (in PRUint16 index); */
  870. NS_IMETHODIMP nsScriptableInterfaceInfo::GetConstant(PRUint16 index, nsIScriptableConstant **_retval)
  871. {
  872.     return NS_ERROR_NOT_IMPLEMENTED;
  873. }
  874.  
  875. /* nsIScriptableInterfaceInfo getInfoForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param); */
  876. NS_IMETHODIMP nsScriptableInterfaceInfo::GetInfoForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIScriptableInterfaceInfo **_retval)
  877. {
  878.     return NS_ERROR_NOT_IMPLEMENTED;
  879. }
  880.  
  881. /* nsIIDPtr getIIDForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param); */
  882. NS_IMETHODIMP nsScriptableInterfaceInfo::GetIIDForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, nsIID * *_retval)
  883. {
  884.     return NS_ERROR_NOT_IMPLEMENTED;
  885. }
  886.  
  887. /* nsIScriptableDataType getTypeForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param, in PRUint16 dimension); */
  888. NS_IMETHODIMP nsScriptableInterfaceInfo::GetTypeForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, nsIScriptableDataType **_retval)
  889. {
  890.     return NS_ERROR_NOT_IMPLEMENTED;
  891. }
  892.  
  893. /* PRUint8 getSizeIsArgNumberForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param, in PRUint16 dimension); */
  894. NS_IMETHODIMP nsScriptableInterfaceInfo::GetSizeIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval)
  895. {
  896.     return NS_ERROR_NOT_IMPLEMENTED;
  897. }
  898.  
  899. /* PRUint8 getLengthIsArgNumberForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param, in PRUint16 dimension); */
  900. NS_IMETHODIMP nsScriptableInterfaceInfo::GetLengthIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint16 dimension, PRUint8 *_retval)
  901. {
  902.     return NS_ERROR_NOT_IMPLEMENTED;
  903. }
  904.  
  905. /* PRUint8 getInterfaceIsArgNumberForParam (in PRUint16 methodIndex, in nsIScriptableParamInfo param); */
  906. NS_IMETHODIMP nsScriptableInterfaceInfo::GetInterfaceIsArgNumberForParam(PRUint16 methodIndex, nsIScriptableParamInfo *param, PRUint8 *_retval)
  907. {
  908.     return NS_ERROR_NOT_IMPLEMENTED;
  909. }
  910.  
  911. /* PRBool isIID (in nsIIDPtr IID); */
  912. NS_IMETHODIMP nsScriptableInterfaceInfo::IsIID(const nsIID * IID, PRBool *_retval)
  913. {
  914.     return NS_ERROR_NOT_IMPLEMENTED;
  915. }
  916.  
  917. /* readonly attribute PRBool isFunction; */
  918. NS_IMETHODIMP nsScriptableInterfaceInfo::GetIsFunction(PRBool *aIsFunction)
  919. {
  920.     return NS_ERROR_NOT_IMPLEMENTED;
  921. }
  922.  
  923. /* PRBool hasAncestor (in nsIIDPtr iid); */
  924. NS_IMETHODIMP nsScriptableInterfaceInfo::HasAncestor(const nsIID * iid, PRBool *_retval)
  925. {
  926.     return NS_ERROR_NOT_IMPLEMENTED;
  927. }
  928.  
  929. /* End of implementation class template. */
  930. #endif
  931.  
  932. // The contractID for the implementation built in to xpconnect.
  933. #define NS_SCRIPTABLE_INTERFACE_INFO_CONTRACTID "@mozilla.org/scriptableInterfaceInfo;1"
  934.  
  935. #endif /* __gen_nsIScriptableInterfaceInfo_h__ */
  936.